Translation Validation for Transformations on Abstract Clocks in Synchronous Languages
نویسندگان
چکیده
Translation validation was introduced as a technique to formally verify the correctness of code generators that attempts to verify that program transformations preserve the semantics. In this work, we adopt this approach to formally verify that the clock semantics is preserved during the transformations of a synchronous data-flow compiler. We represent the clock semantics of a program and its transformed counterpart as first-order formulas which are called clock models. Then we introduce a refinement relation which expresses the preservation of clock semantics, as a relation on clock models. Our validator does not require any instrumentation or modification of the compiler, nor any rewriting of the source program. Key-words: Formal Verification, Translation Validation, Certified Compiler, SMT solver, Synchronous Data-flow Languages Validation de Traduction des Transformations sur le Horloges dans les Langues Sychrones Résumé : Translation validation was introduced as a technique to formally verify the correctness of code generators that attempts to verify that program transformations preserve the semantics. In this work, we adopt this approach to formally verify that the clock semantics is preserved during the transformations of a synchronous data-flow compiler. We represent the clock semantics of a program and its transformed counterpart as first-order formulas which are called clock models. Then we introduce a refinement relation which expresses the preservation of clock semantics, as a relation on clock models. Our validator does not require any instrumentation or modification of the compiler, nor any rewriting of the source program. Mots-clés : Formal Verification, Translation Validation, Certified Compiler, SMT solver, Synchronous Data-flow Languages Translation Validation for Transformations on Abstract Clocks 3
منابع مشابه
Formal verification of automatically generated C-code from polychronous data-flow equations
Synchronous data-flow languages are used as design approaches in developing embedded and critical real-time systems in which synchronous programs are verified by applying formal verification. In a synchronous design approach, transformation and optimization are used to transform synchronous programs and generate general purpose executable code. The incorrectness of the transformations make the ...
متن کاملAre Healthcare Organizations Ready for Change?; Comment on “Development and Content Validation of a Transcultural Instrument to Assess Organizational Readiness for Knowledge Translation in Healthcare Organizations: The OR4KT”
Worldwide most health systems are facing a series of common challenges characterized by the increasing burden of chronic diseases and multimorbidity, and the accelerated pace of biomedical and technological innovations, on the other side. There is a growing recognition that many changes are needed at the macro, meso and micro management levels to tackle these challenges. Therefore, knowing if h...
متن کاملFormal Verification of Transformations on Abstract Clocks in Synchronous Compilers
Translation validation was introduced in the 90’s by Pnueli et al. as a technique to formally verify correctness of code generated from the synchronous data-flow language Signal. Rather than certifying the code generator (by writing it entirely using a theorem prover) or exhaustively qualifying it (by obeying the 27 required documents of DO-178C), translation validation provides a scalable appr...
متن کاملClocks as First Class Abstract Types
Clocks in synchronous data-flow languages are the natural way to define several time scales in reactive systems. They play a fundamental role during the specification of the system and are largely used in the compilation process to generate efficient sequential code. Based on the formulation of clocks as dependent types, the paper presents a simpler clock calculus reminiscent to ML type systems...
متن کاملPushdown Machines for Weighted Context-Free Tree Translation
Synchronous context-free grammars (or: syntax-directed translation schemata) were introduced in the context of compiler construction in the late 1960s [12]. They define string transductions by the simultaneous derivation of an input and an output word. In contrast, modern systems for machine translation of natural language employ weighted tree transformations to account for the grammatical stru...
متن کامل